﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Wise.Entities
{
    public class 数据库配置 : _MyMap
    {
        数据库类型 _类型 = 数据库类型.微软数据库;
        public 数据库类型 类型
        {
            get
            {
                return _类型;
            }
            set
            {
                _类型 = value;
                OnPropertyChange(nameof(this.类型));
            }
        }

        string _服务器名称 = string.Empty;
        public string 服务器名称
        {
            get
            {
                return _服务器名称;
            }
            set
            {
                _服务器名称 = value;
                OnPropertyChange(nameof(this.服务器名称));
            }
        }

        bool _使用Windows验证 = true;
        public bool 使用Windows验证
        {
            get
            {
                return _使用Windows验证;
            }
            set
            {
                _使用Windows验证 = value;
                OnPropertyChange(nameof(this.使用Windows验证));
            }
        }

        string _用户名 = string.Empty;
        public string 用户名
        {
            get { return this._用户名; }
            set
            {
                this._用户名 = value;
                OnPropertyChange(nameof(this.用户名));
            }
        }

        string _密码 = string.Empty;
        public string 密码
        {
            get { return _密码; }
            set
            {
                _密码 = value;
                OnPropertyChange(nameof(this.密码));
            }
        }


        string _数据库名称 = string.Empty;
        public string 数据库名称
        {
            get { return _数据库名称; }
            set
            {
                _数据库名称 = value;
                OnPropertyChange(nameof(this.数据库名称));
            }
        }

        public string GetConnectionString()
        {
            string db = String.IsNullOrEmpty(数据库名称) ? "" : $"Initial Catalog={数据库名称};";
            if (使用Windows验证)
            {
                return $"Integrated Security=SSPI;Persist Security Info=False;User ID={用户名};{db}Data Source={服务器名称}";
            }
            else
            {
                return $"Password={密码};Persist Security Info=True;User ID={用户名};{db}Data Source={服务器名称}";
            }
        }

        public string 脚本文件夹 { get; set; }

        public string 执行完脚本文件夹 { get; set; }
    }
}
